package control.render;

public class RenderSetup {
  public static final double AUTO_FOCUS = 0; 
  public static final double FOCUS_OFF = -1; 
  private int width = 400;
  private int height = 300;
  private int bucketSize = 40;
  private int threadCount = 4;
  private double focalLength = AUTO_FOCUS;
  private double aperature = 0.1;
  private boolean unbiased = true;
  private double environment = 0;
  private int traceDepth = 2;
  private int raysPerIntersection = 6;

  public void setDimension(int width, int height) {
    this.width = width;
    this.height = height;
  }
  
  public int getWidth() {
    return width;
  }
  
  public int getHeight() {
    return height;
  }

  public int getBucketSize() {
    return bucketSize;
  }

  public void setBucketSize(int bucketSize) {
    this.bucketSize = bucketSize;
  }

  public int getThreadCount() {
    return threadCount;
  }

  public void setThreadCount(int threadCount) {
    this.threadCount = threadCount;
  }

  public double getFocalLength() {
    return focalLength;
  }

  public void setFocalLength(double focalLength) {
    this.focalLength = focalLength;
  }

  public double getAperature() {
    return aperature;
  }

  public void setAperature(double aperature) {
    this.aperature = aperature;
  }

  public boolean isUnbiased() {
    return unbiased;
  }

  public void setUnbiased(boolean unbiased) {
    this.unbiased = unbiased;
  }

  public double getEnvironment() {
    return environment;
  }

  public void setEnvironment(double environment) {
    this.environment = environment;
  }

  public int getTraceDepth() {
    return traceDepth;
  }

  public void setTraceDepth(int traceDepth) {
    this.traceDepth = traceDepth;
  }

  public int getRaysPerIntersection() {
    return raysPerIntersection;
  }

  public void setRaysPerIntersection(int raysPerIntersection) {
    this.raysPerIntersection = raysPerIntersection;
  }
}
